#ifndef CROMOSSOM_H
#define CROMOSSOM_H

#include "set.h"

class Cromossom{
	public:
		Cromossom(int,int, Set*);
		~Cromossom();
		int assessFitness();
		Set* getSolutionAsSet();
		void applyPlasmideo(Set*);
		void applyTranspossom();
		
	private:
		int* randomInit();
		int calculateFitness(int*);
		bool isInCromossom(int);
		void calculateSolutionAsSet();
		
		void VNS(int*);
		void copySolution(int*, int*);
		int* changeN(int*, int);
		bool isValid(int*);
		
		int* solution;
		Set* solution_as_set;
		
		int k, L;
		Set *sets;
		int fitness;
};

#include "cromossom.cpp"

#endif